利用埃氏筛选法筛选素数
Count Prime
link
Description:
Count the number of prime numbers less than a non-negative number, n.
求出n以内的所有素数。
这道题目如果用循环来逐一判断会超时,这道题的解法是埃氏筛选法。
解题思路: 首先,将2到n范围内的所有整数写下来,其中最小的数字2是素数。将表中2的倍数都划去。表中剩余的最小数字是3,他不能被更小的数整除,所以是素数。再将表中所有3的倍数都划去。
1 | class Solution { |
自己整理的素数的有关内容
包括如何判断一个数是素数,以及判断一个区间内有多少个素数。
判断区间内素数的方法:(埃氏筛选法)
判断[a,b)间的素数的个数
构造一个数组[0, sqrt(b)],逐个筛选出这个区间的素数,将这个数的倍数扩展到[a,b)区间内,筛选出[a,b)区间内的素数